package com.neuedu.corejava.ch2;

public class DataTyte {

	public static void main(String[] args) {
		
		// 基本数据类型间的转换
		byte bt=127;//数值存储时超过其（储值）数据范围
		short sh=4325;
		int i=1234567;//整数默认是int类型的
		long l=12345678;
		
		float f =123.24f;//单精度浮点数必须以f或F结尾
		float f1 =123.34F;
		
		
		double  d1=1323432.344;//小数默认是double类型的
		double  d2=1323432.344D;//双精度的小数必须以D或d结尾,如果不写默认是double类型
		double  d3=1323432.344d;

		d1=f=l=i=sh=bt;//当把一个小范围的数据类型转换大范围时，可以自动转换。注意：long类型可以自动转换为float类型
        f=(float)d1;//当把一个大范围的数据转换一个小范围时，需要强制转换，强制转换使用小括号（）表示。
		l=(long)f;
        //l=(long)f=(float)d1;类型强转不能连续转换
		
	
		//字符类型
		//char ch1='';//错误，没有这样的空字符
		char ch1='a';//字符是单引号表示，引号内必须有一个特定的符号
		char ch2='&';
		char ch3='中';//字符类型不能保存汉子
		i=ch3;//char类型可以自动转换为int类型
		
		ch3=(char)i;//强制转换
		
		
		String string="";//字符串使用双引号表示，可以是空字符串
		String string2=null;//字符串的默认值是null，null是一种特殊的数据类型（表示没有数据，但不是空字符串）
		
		
		
		boolean bool=true;//boolean类型表示一种逻辑类型，真和假，对与错，正与反
		boolean bool2=false;
		
		
		//使用下划线增加数据的可读性
		long l3=1_000_000_000;//从jdk1.7开始支持使用下划线增加数据的可读性
		long l4=1_0000_0000;
		float f3=1234.1234_5678_1F;
		
		//3._1415_9265; // 小数点后不能添加下划线
		//1234_4567_8901_2345_L; // 数字结尾不能添加下划线  
		//_777_99_8888L; // 数值开头不能添加下划线
		
		
		//进制数
		//常用的数的进制：二进制，八进制，十进制，十六进制
		//二进制：0 1
		//八进制：0 1 2 3 4 5 6 7 
		//十进制：0 1 2 3 4 5 6 7 8 9
		//十六进制：0 1 2 3 4 5 6 7 8 9 A B C D E F
		
		
		
		//数据的表示
		int i3=0b10_0101_0101_0101_0001;//二进制以0B或0bkai开始
		i3 = 01_010_101_701; //八进制数以（零）0开头
		i3=0xe3d4b6a6;//十六进制数：零（0x）开头
		
		//数制之间的换算
		//十进制转二进制用短除法，二进制转十进制
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
	}

}
